package com.ruoyi.business.domain.vo.wecom.admin;

import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 * <p>
 * 企业微信会话存档表
 * </p>
 *
 * @author
 * @since 2023-XX-XX
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("客户聊天记录VO")
public class TbWecomMsgArchiveVO extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 企微seq
     */
    @ApiModelProperty("企微seq")
    private Long seq;

    /**
     * 消息id
     */
    @ApiModelProperty("企微消息id")
    private String msgid;

    /**
     * 消息动作，目前有send(发送消息)/recall(撤回消息)/switch(切换企业日志)三种类型。String类型
     */
    @ApiModelProperty("send(发送消息) recall(撤回消息) switch(切换企业日志)")
    private String action;

    /**
     * 消息发送方id。同一企业内容为userid，非相同企业为external_userid。消息如果是机器人发出，也为external_userid
     */
    @ApiModelProperty("消息发送方用户id")
    private String fromUserId;

    /**
     * 消息发送方id。同一企业内容为userid，非相同企业为external_userid。消息如果是机器人发出，也为external_userid
     */
    @ApiModelProperty("成员类型。\n" +
        "1 - 企业成员\n" +
        "2 - 外部联系人")
    private String fromUserType;

    @ApiModelProperty("消息发送方用户昵称")
    private String fromUserName;

    @ApiModelProperty("消息发送方用户头像")
    private String fromUserAvatar;

    /**
     * 消息接收方用户id
     */
    @ApiModelProperty("消息接收方用户id")
    private String toUserId;

    /**
     * 接收方成员类型
     */
    @ApiModelProperty("接收方成员类型。\n" +
        "1 - 企业成员\n" +
        "2 - 外部联系人")
    private String toUserType;

    @ApiModelProperty("消息接收方用户昵称")
    private String toUserName;

    @ApiModelProperty("消息接收方用户头像")
    private String toUserAvatar;

    /**
     * 消息方向标识
     */
    @ApiModelProperty("消息方向：0-群聊消息，1-单聊发送方消息，2-单聊接收方消息")
    private Integer msgDirection;

    /**
     * 群聊消息的群id。如果是单聊则为空
     */
    @ApiModelProperty("群聊id")
    private String roomid;


    @ApiModelProperty("群聊名称")
    private String chatName;

    /**
     * 消息发送时间戳，utc时间，ms单位
     */
    @ApiModelProperty("发送时间")
    private Long msgtime;

    /**
     * 消息类型
     */
    @ApiModelProperty("消息类型")
    private String msgtype;

    /**
     * 消息内容
     */
    @ApiModelProperty("文本内容")
    private String textContent;

    /**
     * 文件名称
     */
    @ApiModelProperty("文件名称")
    private String filename;

    /**
     * 文件拓展名
     */
    @ApiModelProperty("文件拓展名")
    private String fileext;

    /**
     * 表情类型，png或者gif.1表示gif 2表示png
     */
    @ApiModelProperty("表情类型，png或者gif.1表示gif 2表示png")
    private Integer emotionType;

    /**
     * 表情图片宽度
     */
    @ApiModelProperty("表情图片宽度")
    private Integer emotionWidth;

    /**
     * 表情图片高度
     */
    @ApiModelProperty("表情图片高度")
    private Integer emotionHeight;

    /**
     * 语音播放长度
     */
    @ApiModelProperty("语音播放长度")
    private Long playLength;

    /**
     * 消息标题
     */
    @ApiModelProperty("消息标题")
    private String title;

    /**
     * 消息描述
     */
    @ApiModelProperty("消息描述")
    private String description;

    /**
     * 链接url地址
     */
    @ApiModelProperty("链接url地址")
    private String linkUrl;

    /**
     * 链接图片url
     */
    @ApiModelProperty("链接图片url")
    private String imageUrl;

    /**
     * 小程序 用户名
     */
    @ApiModelProperty("小程序 用户名")
    private String userName;

    /**
     * 小程序名称
     */
    @ApiModelProperty("小程序名称")
    private String displayName;

    /**
     * 名片所有者所在的公司名称
     */
    @ApiModelProperty("名片所有者所在的公司名称")
    private String cardCorpName;

    /**
     * 名片所有者的id，同一公司是userid，不同公司是external_userid
     */
    @ApiModelProperty("名片所有者的id，同一公司是userid，不同公司是external_userid")
    private String cardUserId;

    /**
     * 图文消息的内容
     */
    @ApiModelProperty("图文消息的内容")
    private String newsInfo;

    /**
     * 混合消息
     */
    @ApiModelProperty("混合消息")
    private String mixedInfo;

    /**
     * 经度
     */
    @ApiModelProperty("经度")
    private BigDecimal longitude;

    /**
     * 纬度
     */
    @ApiModelProperty("纬度")
    private BigDecimal latitude;

    /**
     * 地址
     */
    @ApiModelProperty("地址")
    private String address;

    /**
     * 缩放比例
     */
    @ApiModelProperty("缩放比例")
    private Integer zoom;

    /**
     * 文件资源oss路径
     */
    @ApiModelProperty("文件资源oss路径")
    private String ossUrl;

}
